namespace ManagedFreeFrame.Struct
{
    using System;
    using System.Runtime.InteropServices;

    /// <summary>
    /// A plugin shouldn't change parameter values by itself. All parameters are set by the plugin host through the setParameter function. 
    /// </summary>
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
    public struct SetParameterStruct
    {
        /// <summary>
        /// Index of a parameter, starting at 0 for the first parameter.
        /// </summary>
        [MarshalAs(UnmanagedType.U4)]
        public UInt32 ParameterNumber;

        /// <summary>
        /// Float value from 0-1 or pointer to null terminated string
        ///  The Use of any values outside this range will result in hideous incompatibilities.
        /// </summary>
        [MarshalAs(UnmanagedType.R4)]
        public float ParameterValue;
    }
}